fix: Fix incorrect edge table state when transforming between bundled and unbundled#28
fix: Fix incorrect edge table state when transforming between bundled and unbundled#28zhanglei1949 merged 6 commits intomainfrom
Conversation
Use cibuildwheel to build wheels for all platforms and archs.
eed8593 to
dc97a9e
Compare
|
@greptile |
|
@greptile |
|
Waiting string propblem to be resolved. |
|
@greptile |
a4d7dcd to
5c32837
Compare
|
@greptile |
There was a problem hiding this comment.
zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
@greptile |
There was a problem hiding this comment.
zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
Pull request overview
Fixes inconsistent internal EdgeTable state transitions when edge properties are added/dropped, preventing unintended flips between bundled and unbundled storage (Fix #58).
Changes:
- Update
EdgeTableschema-alter paths to correctly rebuild CSR/Table when adding/dropping properties (including empty ↔ bundled ↔ unbundled transitions). - Improve handling for bundled empty edge data and unsupported type reporting/behavior in CSR creation/insertion helpers.
- Add/extend regression tests in both Python DDL tests and C++ storage tests to validate transitions and capacity/size invariants.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/python_bind/tests/test_ddl.py | Adds a DDL regression test for dropping/adding edge table columns across reopen. |
| tests/storage/test_vertex_table.cc | Minor formatting fix (brace alignment) to keep tests consistent. |
| tests/storage/test_edge_table.cc | Adds extensive transition tests and strengthens assertions around bundled/unbundled size/capacity behavior. |
| src/storages/graph/edge_table.cc | Implements the core fix: rebuild logic for bundled/unbundled conversions during Add/DeleteProperties; adjusts CSR creation/edge insertion behavior. |
| include/neug/storages/graph/edge_table.h | Updates the bundled-CSR rebuild helper signature to support conversion using a remaining column. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
… and unbundled (alibaba#28) Fix incorrect edge table state when transforming between bundled and unbundled, include special case for string properties
* add java sdk * add test cases * Update tools/java_driver/USAGE.md Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update tools/java_driver/USAGE.md Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix some issues * add ClientTest * update doc * fix doc * Update tools/java_driver/pom.xml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tools/java_driver/src/test/java/org/alibaba/neug/driver/InternalResultSetTest.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * format * rename org to com * fix doc * add result metadata * fix * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * add tests * add doc * add maven * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/utils/Client.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * add e2e ci * add param test * format * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalSession.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update InternalSession.java * remove pb generated * fix doc * fix doc * fix doc * fix workflows * fix version * fix generator * fix maven action * fix: catch OSError in neug-cli readline history loading on macOS (#75) * fix: catch OSError in neug-cli readline history loading on macOS On macOS, Python's readline module is backed by libedit instead of GNU readline. When ~/.neug_history was written by a GNU readline session (e.g. from Docker/Linux), libedit raises OSError (errno 22 EINVAL) instead of silently handling the incompatible format. The original code only caught FileNotFoundError, causing neug-cli to crash on startup. Broaden the exception handler to also catch OSError so the history file is simply skipped, matching the intended behavior. Fixes #74 * fix: scope OSError catch to errno.EINVAL for libedit incompatibility Per greptile review: catching the full OSError base class could silently swallow unrelated errors such as PermissionError or IsADirectoryError. Narrow the catch to only suppress errno.EINVAL (22), which is the specific error raised by macOS libedit when it encounters a GNU readline history file. All other OSError variants are re-raised so users see genuine problems. Also add 'import errno' to top-level imports. * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalDriver.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix getBigDecimal * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix getObject * feat: Support Export Query Results to JSON/JSONL file (#60) * support export arrow table to csv format Committed-by: Xiaoli Zhou from Dev container * export query response PB to csv format Committed-by: Xiaoli Zhou from Dev container * minor fix according to review Committed-by: Xiaoli Zhou from Dev container * fix according to review Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container * support export query results to json format Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container * remove 'newline_delimited' settings and detect jsonl format from path Committed-by: Xiaoli Zhou from Dev container Committed-by: Xiaoli Zhou from Dev container Committed-by: Xiaoli Zhou from Dev container Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container * add export to json tests in CI Committed-by: Xiaoli Zhou from Dev container Committed-by: Xiaoli Zhou from Dev container * Update extension/json/src/json_export_function.cc Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update extension/json/src/json_export_function.cc Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update extension/json/src/json_export_function.cc Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * minor fix Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container * refine extension tests anotation Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container * rename INSTALL_EXTENSIONS to CI_INSTALL_EXTENSIONS to avoid conflict Committed-by: Xiaoli Zhou from Dev container * refine json extension tests ci Committed-by: Xiaoli Zhou from Dev container * minor fix Committed-by: Xiaoli Zhou from Dev container Committed-by: Xiaoli Zhou from Dev container --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * remove bytearray * add codegraph-qa skill (#78) * fix: Fix default value support for all type of properties (#63) Refactor the default value support for storage, avoid exposing default_value on column and mmap_array --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix: Fix incorrect edge table state when transforming between bundled and unbundled (#28) Fix incorrect edge table state when transforming between bundled and unbundled, include special case for string properties * fix: make the dedup operator cover all column types (#80) * make dedup operator cover all column types * format * fix * Correct the is_optional interface behavior for certain columns (#90) * add a codegraph example (#87) Co-authored-by: Longbin Lai <longbin.lai@gmail.com> * add checkRowIndex * add update_was_null * update doc * fix * update doc * fix * Implement the iteration method for QueryResult * update query_result.md * update * update doc * format example * format --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Longbin Lai <longbin.lai@gmail.com> Co-authored-by: Xiaoli Zhou <yihe.zxl@alibaba-inc.com> Co-authored-by: BingqingLyu <bingqing.lbq@alibaba-inc.com> Co-authored-by: Zhang Lei <xiaolei.zl@alibaba-inc.com>
Fix #58